// #include <iostream>
// #include <vector>
// #include <unordered_map>
// using namespace std;
// using ll=long long;
// int main()
// {
//   int n,k,sum=0,count=0;
//   cin>>n>>k;
//   vector<int> a(n);
//   for(int i=0;i<n;i++)cin>>a[i];

//   unordered_map<int,int> ret;
//   ret[0]=1;
//   for(int value:a)
//   {
//     sum+=value;
//     int m=sum%k;
//     //如果之前的前缀和是K的倍数，只用判断当前新加入的元素是否是K的倍数即可
//     //m实际上可以看为当前加入的value，如果哈希表之前已经存在过这个m，
//     //直接加上前面的值即可
//     if(ret.find(m)!=ret.end())
//     {
//       count+=ret[m];
//     }
//     ret[m]++;
//   }
//   cout<<count<<endl;
//   return 0;
// }


